package com.movitech.mobile.cz.base.supplier.bizservice;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.movitech.mobile.cz.base.modules.controller.RestReturnResult;
import com.movitech.mobile.cz.base.supplier.bizvo.*;
import com.movitech.mobile.cz.base.supplier.entity.SEvaluation;
import com.movitech.mobile.cz.base.supplier.entity.SEvaluationTemplate;
import com.movitech.mobile.cz.base.supplier.entity.SSuppliersLastThreeAchieve;
import com.movitech.mobile.cz.base.supplier.entity.ext.*;

import java.util.List;

/**
 * <p>
 * 供方评估管理
 * </p>
 * @author Blue.Xia
 * @since 2018-03-06
 *
 */
public interface SSuppliersEvaluationService extends IService<SEvaluation> {

//    PageCode findEvaluationList(EvaluationListRequestVO evaluationListRequestVO);

    ExtSEvaluation getSEvaluationById(String evaluationId);

    ExtSEvaluation getImproveDetailById(String evaluationId);

    ExtSEvaluation getLaunchEvaluationData(EvaluationLaunchDataRequest evaluationLaunchDataRequest);

    List<SEvaluationTemplate> getSEvaluationTemplateByEntity(SEvaluationTemplate sEvaluationTemplate);

    ExtSEvaluation getLaunchEvaluationTeml(String id);

    boolean saveLaunchEvaluationData(ExtSEvaluation evaluationSaveLaunchDataRequest);

    /**
     * 评估列表(履约过程、履约后列表)
     * @param evaluationListReqVO
     * @return
     */
	RestReturnResult searchEvaluationList(EvaluationListReqVO evaluationListReqVO);
    List<ExtSEvaluation> exportEvaluationList(EvaluationListReqVO evaluationListReqVO);

	void skipEvaluation(EvaluationSkipReqVO evaluationSkipReqVO);

    SupplierRankDtlRspVO supplierRankDtl(SupplierRankDtlReqVo vo);

    void saveSupplierRankDtl(SupplierRankDtlRspVO supplierRankDtlRspVO) throws Exception;

    ExtSEvaluation getSEvaluationDealById(String evaluationId);

    void submitEvaluationScore(ExtSEvaluation evaluationSaveLaunchDataRequest);

    List<SSuppliersLastThreeAchieve> findSimByname(String name);

    void generateEvaluationProcesses(int genType);

    ExtSEvaluationTemplate getEvaluationTemlById(String id) ;
    void saveEvaluationTeml(ExtSEvaluationTemplate extSEvaluationTemplate);

    void saveRankScores(SupplierRankDtlRspVO supplierRankDtlRspVO) throws Exception;

    SupplierRankDtlRspVO supplierRankScoreDtl(SupplierRankDtlReqVo vo);

    void updateSEvaluationTemplates(String id);
    void deleteSEvaluationTemplates(String id );

    String initiateApprovalSupplierRank(InitiateApprovalSupplierRankReqVo vo);

    ApprovalSupplierRankDtlVo approvalSupplierRankDtl(String id);

    boolean approvalSupplierRank(SupplierRankApprovalResultVo vo);

    void approvalSupplierRankFinal(SupplierRankApprovalResultVo vo);

    Page<ExtSSuppliersLastThreeAchieve> selectEvaluationLastContact(Page<ExtSSuppliersLastThreeAchieve> page, ExtSSuppliersLastThreeAchieve extSSuppliersLastThreeAchieve);

    void submitImproveDetail(SEvaluaImproveVO vo);

    List<ExtSEvaluationImproveHis> getImproveHistory(String evaluationId);
}
